package com.yqg.protection.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yqg.protection.cover.HydConverter;
import com.yqg.protection.cover.IsUsePdcConverter;
import com.yqg.protection.cover.LocalDateTimeConverter;
import com.yqg.protection.cover.WaterSupNetConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * equipment_device 实体类
 *
 * @author zxf
 * @since 2024-09-11
 */
@Getter
@Setter
@TableName("equipment_device")
@ApiModel(value = "EquipmentDevice对象", description = "")
public class EquipmentDevice implements Serializable {

    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "ID", index = 0)
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ExcelProperty(value = "设施名称", index = 1)
    @ApiModelProperty("设施名称")
    private String deviceName;

    @ExcelProperty(value = "单位ID", index = 2)
    @ApiModelProperty("单位ID")
    private Long clientId;

    @ExcelProperty(value = "单位名称", index = 3)
    @TableField(exist = false)
    @ApiModelProperty("单位名称")
    private String clientName;

    @ExcelProperty(value = "组织ID", index = 4)
    private Long organization;

    @ExcelProperty(value = "组织名称", index = 5)
    @TableField(exist = false)
    @ApiModelProperty("组织名称")
    private String organizationName;

    @ExcelProperty(value = "状态变化时间", index = 6, converter = LocalDateTimeConverter.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("状态变化时间")
    private LocalDateTime stateChangeTime;

    @ExcelProperty(value = "处理状态", index = 7)
    @ApiModelProperty("处理状态")
    private String treatmentState;

    @ExcelProperty(value = "设施状态", index = 8)
    @ApiModelProperty("设施状态")
    private String facilityState;

    @ExcelProperty(value = "设置部位", index = 9)
    @ApiModelProperty("设置部位")
    private String setPosition;

    @ExcelProperty(value = "设施系统形式", index = 10)
    @ApiModelProperty("设施系统形式")
    private String systemForm;

    @ExcelProperty(value = "投入使用时间", index = 11, converter = LocalDateTimeConverter.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("投入使用时间")
    private LocalDateTime serviceTime;

    @ExcelProperty(value = "生产单位名称", index = 12)
    @ApiModelProperty("生产单位名称")
    private String productionName;

    @ExcelProperty(value = "生产单位电话", index = 13)
    @ApiModelProperty("生产单位电话")
    private String productionTel;

    @ExcelProperty(value = "维修保养单位名称", index = 14)
    @ApiModelProperty("维修保养单位名称")
    private String maintenanceName;

    @ExcelProperty(value = "维修保养单位电话", index = 15)
    @ApiModelProperty("维修保养单位电话")
    private String maintenanceTel;

    @ExcelProperty(value = "探测器数量", index = 16)
    @ApiModelProperty("探测器数量")
    private Integer detectorNum;

    @ExcelProperty(value = "控制器数量", index = 17)
    @ApiModelProperty("控制器数量")
    private Integer controllerNum;

    @ExcelProperty(value = "手动报警按钮数量", index = 18)
    @ApiModelProperty("手动报警按钮数量")
    private Integer manualAlButNum;

    @ExcelProperty(value = "消防电气控制数量", index = 19)
    @ApiModelProperty("消防电气控制数量")
    private Integer elecFireConNum;

    @ExcelProperty(value = "市政给水管网形式(树状网,环状网)", index = 20, converter = WaterSupNetConverter.class)
    @ApiModelProperty("市政给水管网形式: 0树状网，1环状网")
    private Integer waterSupNetForm;

    @ExcelProperty(value = "市政进水管数量", index = 21)
    @ApiModelProperty("市政进水管数量")
    private Integer waterSupNum;

    @ExcelProperty(value = "市政进水管管径", index = 22)
    @ApiModelProperty("市政进水管管径")
    private BigDecimal inPipeDiamet;

    @ExcelProperty(value = "消防水池容量", index = 23)
    @ApiModelProperty("消防水池容量")
    private BigDecimal firePoolCapacity;

    @ExcelProperty(value = "消防水池位置", index = 24)
    @ApiModelProperty("消防水池位置")
    private String firePoolPosition;

    @ExcelProperty(value = "消防水箱容量", index = 25)
    @ApiModelProperty("消防水箱容量")
    private BigDecimal fireTankCapacity;

    @ExcelProperty(value = "消防水箱位置", index = 26)
    @ApiModelProperty("消防水箱位置")
    private String fireTankPosition;

    @ExcelProperty(value = "消防泵位置", index = 27)
    @ApiModelProperty("消防泵位置")
    private String firePumpPosition;

    @ExcelProperty(value = "消防泵流量", index = 28)
    @ApiModelProperty("消防泵流量")
    private BigDecimal firePumpFlow;

    @ExcelProperty(value = "消防泵扬程", index = 29)
    @ApiModelProperty("消防泵扬程")
    private BigDecimal firePumpLift;

    @ExcelProperty(value = "其他水源供水量", index = 30)
    @ApiModelProperty("其他水源供水量")
    private BigDecimal otherWaterSup;

    @ExcelProperty(value = "其他水源情况", index = 31)
    @ApiModelProperty("其他水源情况")
    private String otherWaterCondition;

    @ExcelProperty(value = "室外消火栓官网形式(环状管网消火栓系统,枝状管网消火栓系统)", index = 32, converter = HydConverter.class)
    @ApiModelProperty("室外消火栓官网形式 0:环状管网消火栓系统 1:枝状管网消火栓系统")
    private Integer outdoorHydForm;

    @ExcelProperty(value = "室外消火栓数量", index = 33)
    @ApiModelProperty("室外消火栓数量")
    private Integer outdoorHydNum;

    @ExcelProperty(value = "室外消火栓管径", index = 34)
    @ApiModelProperty("室外消火栓管径")
    private BigDecimal outdoorHydDiamet;

    @ExcelProperty(value = "室内消火栓官网形式(环状管网消火栓系统,枝状管网消火栓系统)", index = 35, converter = HydConverter.class)
    @ApiModelProperty("室内消火栓官网形式 0:环状管网消火栓系统 1:枝状管网消火栓系统")
    private Integer indoorHydForm;

    @ExcelProperty(value = "室内消火栓数量", index = 36)
    @ApiModelProperty("室内消火栓数量")
    private Integer indoorHydNum;

    @ExcelProperty(value = "室内消火栓管径", index = 37)
    @ApiModelProperty("室内消火栓管径")
    private BigDecimal indoorHydDiamet;

    @ExcelProperty(value = "水泵接合器数量", index = 38)
    @ApiModelProperty("水泵接合器数量")
    private Integer siaConNum;

    @ExcelProperty(value = "水泵接合器位置", index = 39)
    @ApiModelProperty("水泵接合器位置")
    private String siaConPosition;

    @ExcelProperty(value = "稳压泵数量", index = 40)
    @ApiModelProperty("稳压泵数量")
    private Integer stabPrePumpNum;

    @ExcelProperty(value = "稳压泵流量", index = 41)
    @ApiModelProperty("稳压泵流量")
    private BigDecimal stabPrePumpFlow;

    @ExcelProperty(value = "稳压泵扬程", index = 42)
    @ApiModelProperty("稳压泵扬程")
    private BigDecimal stabPrePumpLift;

    @ExcelProperty(value = "气压罐容量", index = 43)
    @ApiModelProperty("气压罐容量")
    private BigDecimal airPreTankCapacity;

    @ExcelProperty(value = "稳压泵数量", index = 44)
    @ApiModelProperty("稳压泵数量")
    private Integer fireHoseNum;

    @ExcelProperty(value = "报警阀数量", index = 45)
    @ApiModelProperty("报警阀数量")
    private Integer alarmValNum;

    @ExcelProperty(value = "报警阀位置", index = 46)
    @ApiModelProperty("报警阀位置")
    private String alarmValPosition;

    @ExcelProperty(value = "水流指示灯数量", index = 47)
    @ApiModelProperty("水流指示灯数量")
    private Integer waterLightNum;

    @ExcelProperty(value = "水流指示灯位置", index = 48)
    @ApiModelProperty("水流指示灯位置")
    private String waterLightPosition;

    @ExcelProperty(value = "喷头数量", index = 49)
    @ApiModelProperty("喷头数量")
    private Integer showNozzNum;

    @ExcelProperty(value = "减压阀数量", index = 50)
    @ApiModelProperty("减压阀数量")
    private Integer reliValNum;

    @ExcelProperty(value = "减压阀位置", index = 51)
    @ApiModelProperty("减压阀位置")
    private String reliValPosition;

    @ExcelProperty(value = "竖向分区数量", index = 52)
    @ApiModelProperty("竖向分区数量")
    private Integer verPartNum;

    @ExcelProperty(value = "喷淋泵数量", index = 53)
    @ApiModelProperty("喷淋泵数量")
    private Integer sprayPumpNum;

    @ExcelProperty(value = "喷淋泵流量", index = 54)
    @ApiModelProperty("喷淋泵流量")
    private BigDecimal sprayPumpFlow;

    @ExcelProperty(value = "喷淋泵扬程", index = 55)
    @ApiModelProperty("喷淋泵扬程")
    private BigDecimal sprayPumpLift;

    @ExcelProperty(value = "喷淋泵位置", index = 56)
    @ApiModelProperty("喷淋泵位置")
    private String sprayPosition;

    @ExcelProperty(value = "雨淋阀数量", index = 57)
    @ApiModelProperty("雨淋阀数量")
    private Integer delugeValNum;

    @ExcelProperty(value = "雨淋阀位置", index = 58)
    @ApiModelProperty("雨淋阀位置")
    private String delugeValPosition;

    @ExcelProperty(value = "水雾喷头数量", index = 59)
    @ApiModelProperty("水雾喷头数量")
    private Integer sprayNozzNum;

    @ExcelProperty(value = "水雾喷头位置", index = 60)
    @ApiModelProperty("水雾喷头位置")
    private String sprayNozzPosition;

    @ExcelProperty(value = "防护区数量", index = 61)
    @ApiModelProperty("防护区数量")
    private Integer protZoneNum;

    @ExcelProperty(value = "防护区容积", index = 62)
    @ApiModelProperty("防护区容积")
    private BigDecimal protZoneCapacity;

    @ExcelProperty(value = "防护区部位名称", index = 63)
    @ApiModelProperty("防护区部位名称")
    private String protZoneName;

    @ExcelProperty(value = "防护区位置", index = 64)
    @ApiModelProperty("防护区位置")
    private String protZonePosition;

    @ExcelProperty(value = "灭火剂类型", index = 65)
    @ApiModelProperty("灭火剂类型")
    private String extingAgentType;

    @ExcelProperty(value = "手动控制装置位置", index = 66)
    @ApiModelProperty("手动控制装置位置")
    private String manuConPosition;

    @ExcelProperty(value = "设施动作方式", index = 67)
    @ApiModelProperty("设施动作方式")
    private String faciOperaMode;

    @ExcelProperty(value = "瓶库位置", index = 68)
    @ApiModelProperty("瓶库位置")
    private String vaultLocation;

    @ExcelProperty(value = "钢瓶数量", index = 69)
    @ApiModelProperty("钢瓶数量")
    private Integer steelCylinNum;

    @ExcelProperty(value = "钢瓶容积", index = 70)
    @ApiModelProperty("钢瓶容积")
    private BigDecimal steelCylinCapacity;

    @ExcelProperty(value = "钢瓶间距", index = 71)
    @ApiModelProperty("钢瓶间距")
    private BigDecimal steelCylinSpace;

    @ExcelProperty(value = "泡沫泵数量", index = 72)
    @ApiModelProperty("泡沫泵数量")
    private Integer frothPumpNum;

    @ExcelProperty(value = "泡沫泵流量", index = 73)
    @ApiModelProperty("泡沫泵流量")
    private BigDecimal frothPumpFlow;

    @ExcelProperty(value = "泡沫泵扬程", index = 74)
    @ApiModelProperty("泡沫泵扬程")
    private BigDecimal frothPumpLift;

    @ExcelProperty(value = "泡沫数值", index = 75)
    @ApiModelProperty("泡沫数值")
    private Integer frothNum;

    @ExcelProperty(value = "干粉储罐位置", index = 76)
    @ApiModelProperty("干粉储罐位置")
    private String dryPowdTankPosition;

    @ExcelProperty(value = "防烟分区数量", index = 77)
    @ApiModelProperty("防烟分区数量")
    private Integer smokeBayNum;

    @ExcelProperty(value = "防烟分区位置", index = 78)
    @ApiModelProperty("防烟分区位置")
    private String smokeBayPosition;

    @ExcelProperty(value = "风机数量", index = 79)
    @ApiModelProperty("风机数量")
    private Integer draughtFanNum;

    @ExcelProperty(value = "风机安装位置", index = 80)
    @ApiModelProperty("风机安装位置")
    private String draughtFanPosition;

    @ExcelProperty(value = "风机风量", index = 81)
    @ApiModelProperty("风机风量")
    private BigDecimal draughtFanFlow;

    @ExcelProperty(value = "风口设置部位", index = 82)
    @ApiModelProperty("风口设置部位")
    private String tuyereLocation;

    @ExcelProperty(value = "排烟防火阀数量", index = 83)
    @ApiModelProperty("排烟防火阀数量")
    private Integer smokeFireValNum;

    @ExcelProperty(value = "排烟阀数量", index = 84)
    @ApiModelProperty("排烟阀数量")
    private Integer smokeDampNum;

    @ExcelProperty(value = "防火阀数量", index = 85)
    @ApiModelProperty("防火阀数量")
    private Integer fireDampNum;

    @ExcelProperty(value = "正压送风阀数量", index = 86)
    @ApiModelProperty("正压送风阀数量")
    private Integer presSupCylNum;

    @ExcelProperty(value = "防火门数量", index = 87)
    @ApiModelProperty("防火门数量")
    private Integer fireDoorNum;

    @ExcelProperty(value = "防火卷帘数量", index = 88)
    @ApiModelProperty("防火卷帘数量")
    private Integer fireShutNum;

    @ExcelProperty(value = "防火门设置部位", index = 89)
    @ApiModelProperty("防火门设置部位")
    private String fireDoorSetPosition;

    @ExcelProperty(value = "防火卷帘门设置部位", index = 90)
    @ApiModelProperty("防火卷帘门设置部位")
    private String fireShutSetPosition;

    @ExcelProperty(value = "扩音器功率", index = 91)
    @ApiModelProperty("扩音器功率")
    private Integer amplifPower;

    @ExcelProperty(value = "备用扩音器功率", index = 92)
    @ApiModelProperty("备用扩音器功率")
    private Integer standAmplifPower;

    @ExcelProperty(value = "扬声器数量", index = 93)
    @ApiModelProperty("扬声器数量")
    private Integer speakNum;

    @ExcelProperty(value = "广播分区数量", index = 94)
    @ApiModelProperty("广播分区数量")
    private Integer broadPartNum;

    @ExcelProperty(value = "广播分区设置部位", index = 95)
    @ApiModelProperty("广播分区设置部位")
    private String broadPartSetPosition;

    @ExcelProperty(value = "消防专用电话数量", index = 96)
    @ApiModelProperty("消防专用电话数量")
    private Integer fireTelNum;

    @ExcelProperty(value = "消防专用电话位置", index = 97)
    @ApiModelProperty("消防专用电话位置")
    private String fireTelPosition;

    @ExcelProperty(value = "应急照明疏散数量", index = 98)
    @ApiModelProperty("应急照明疏散数量")
    private Integer emergLightEvacNum;

    @ExcelProperty(value = "消防电源设置部位", index = 99)
    @ApiModelProperty("消防电源设置部位")
    private String firePowerSetPosition;

    @ExcelProperty(value = "备用电源形式", index = 100)
    @ApiModelProperty("备用电源形式")
    private String backupPowerForm;

    @ExcelProperty(value = "灭火器设置部位", index = 101)
    @ApiModelProperty("灭火器设置部位")
    private String fireExtLocation;

    @ExcelProperty(value = "灭火器配置类型", index = 102)
    @ApiModelProperty("灭火器配置类型")
    private String fireExtConfType;

    @ExcelProperty(value = "是否为独立配电柜", index = 103, converter = IsUsePdcConverter.class)
    @ApiModelProperty("是否为独立配电柜 0:否 1:是")
    private Integer isUsePdc;

    @ExcelProperty(value = "灭火器生产日期", index = 104, converter = LocalDateTimeConverter.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("灭火器生产日期")
    private LocalDateTime fireExtManuTime;

    @ExcelProperty(value = "灭火器更换药剂日期", index = 105, converter = LocalDateTimeConverter.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("灭火器更换药剂日期")
    private LocalDateTime fireExtChangeTime;

    @ExcelProperty(value = "灭火器数量", index = 106)
    @ApiModelProperty("灭火器数量")
    private Integer fireExtNum;

    @ExcelProperty(value = "火灾自动报警系统图", index = 107)
    @ApiModelProperty("火灾自动报警系统图")
    private String fireAlaSysDiagram;

    @ExcelProperty(value = "消防给水系统平面图", index = 108)
    @ApiModelProperty("消防给水系统平面图")
    private String fireWaterSysPlan;

    @ExcelProperty(value = "室外消火栓平面图", index = 109)
    @ApiModelProperty("室外消火栓平面图")
    private String outdoorHydPlan;

    @ExcelProperty(value = "室内消火栓平面图", index = 110)
    @ApiModelProperty("室内消火栓平面图")
    private String indoorHydPlan;

    @ExcelProperty(value = "自动喷水灭火系统图", index = 111)
    @ApiModelProperty("自动喷水灭火系统图")
    private String autSprSysDiag;

    @ExcelProperty(value = "水喷雾灭火系统图", index = 112)
    @ApiModelProperty("水喷雾灭火系统图")
    private String waterFireSysDiag;

    @ExcelProperty(value = "气体灭火系统图", index = 113)
    @ApiModelProperty("气体灭火系统图")
    private String gasFireSysDiag;

    @ExcelProperty(value = "泡沫灭火系统图", index = 114)
    @ApiModelProperty("泡沫灭火系统图")
    private String foamFireSysDiag;

    @ExcelProperty(value = "干粉灭火系统图", index = 115)
    @ApiModelProperty("干粉灭火系统图")
    private String dryPowderFireSysDiag;

    @ExcelProperty(value = "防烟排烟系统图", index = 116)
    @ApiModelProperty("防烟排烟系统图")
    private String smokeConSysDiag;

    @ExcelProperty(value = "消防应急广播系统图", index = 117)
    @ApiModelProperty("消防应急广播系统图")
    private String fireBroadSysDiag;

    @ExcelProperty(value = "应急照明疏散指示图", index = 118)
    @ApiModelProperty("应急照明疏散指示图")
    private String emergLightEvaInstr;

    @ExcelIgnore
    private Integer isDelete;

}
